package hit.dao.database;

import hit.dao.DAOBase;
import hit.dao.DAOFactory;
import hit.dao.DataAccessObject;
import hit.dao.SettingsDAO;

/**
 *	A factory used to create the {@link DataAccessObject}s needed
 *	for connecting to the Sqlite Database.
 */
public class DatabaseDAOFactory implements DAOFactory{

	/**
	 *	Default Constructor
	 */
	public DatabaseDAOFactory(){
		
	}
	
	/**
	 *	Creates a new {@link DataAccessObject}
	 * 	@return The DataAccessObject created by the factory
	 */
	@Override
	public DataAccessObject CreateDataAccessObject() {
		DatabaseDAO.Initialize();
		return new DatabaseDAO();
	}

	/**
	 *	Creates a new {@link DBStorageUnitDAO}
	 * 	@return The DataAccessObject created by the factory
	 */
	@Override
	public DAOBase CreateStorageUnitDAO() {
		throw new UnsupportedOperationException("Not supported yet.");
	}

	/**
	 *	Creates a new {@link DBProductGroupDAO}
	 * 	@return The DataAccessObject created by the factory
	 */
	@Override
	public DAOBase CreateProductGroupDAO() {
		throw new UnsupportedOperationException("Not supported yet.");
	}

	/**
	 *	Creates a new {@link DBProductDAO}
	 * 	@return The DataAccessObject created by the factory
	 */
	@Override
	public DAOBase CreateProductDAO() {
		throw new UnsupportedOperationException("Not supported yet.");
	}

	/**
	 *	Creates a new {@link DBItemDAO}
	 * 	@return The DataAccessObject created by the factory
	 */
	@Override
	public DAOBase CreateItemDAO() {
		throw new UnsupportedOperationException("Not supported yet.");
	}

	/**
	 *	Creates a new {@link DBSettingsDAO}
	 * 	@return The DataAccessObject created by the factory
	 */
	@Override
	public SettingsDAO CreateSettingsDAO() {
		throw new UnsupportedOperationException("Not supported yet.");
	}

}
